<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div id="app">
        <router-link to="/home">主页</router-link>
        <router-link to="/product/123">产品详情1</router-link>
        <router-link to="/product/456">产品详情2</router-link>
        <router-view></router-view>
        <!-- <router-link to="">主页</router-link> -->
    </div>
</body>
<script src="./node_modules/vue/dist/vue.js"></script>
<script src="./node_modules/vue-router/dist/vue-router.js"></script>
<script>
    let routes = [
        {
            path: "/home",
            beforeEnter: ((to, from, next) => {
                console.log("路由导航守卫"),
                    next()
            }),
            component: () => Promise.resolve({
                template: `<h1>主页</h1>`,
                beforeRouteEnter(to, from, next) {
                    console.log("组件导航守卫进入主页路由");
                    next()
                },
                beforeRouteUpdate(to, from, next) {
                    console.log("组件导航守卫路由更新");
                    console.log(this) //=>产品详情
                    next();
                },
                beforeRouteLeave(to, from, next) {
                    console.log("组件导航守卫离开/homet路由");
                    console.log("现在路由", from);
                    console.log("前往路由", to);
                    next()

                }
            })
        }, {
            path: "/product/:proid",
            beforeEnter: ((to, from, next) => {
                console.log("路由导航守卫"),
                    next()
            }),
            component: () => import("./product.js")
        }
    ]
    let router = new VueRouter({
        routes

    })
    router.beforeEach((to, from, next) => {
        console.log("全局导航守卫"),
            next()
    })
    let vm = new Vue({
        router,
        el: '#app'
    })
</script>

</html>